#include <tr1/memory>
#include "Array_impl.h"

template <typename T>  //??Do not care????
class Array
{
public :
    Array();
    Array(int);
    int size();
private :
    std::tr1::shared_ptr< Array_impl<T> > pimpl;    
};

template <typename T>
Array<T>::Array()
    :pimpl(new Array_impl<T>())
{}

template <typename T>
Array<T>::Array(int length)
    :pimpl(new Array_impl<T>(length))
{}
